home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
TeX 1995 July
/
TeX CD-ROM July 1995 (Disc 1)(Walnut Creek)(1995).ISO
/
macros
/
lamstex
/
lamstex.zoo
/
lamstex
/
disk4
/
lams5.mf
< prev
Wrap
Text File
|
1991-08-01
|
16KB
|
508 lines
% LAMS5.MF VERSION 1.0
% COPYRIGHT (C) 1989 BY THE TEXPLORATORS CORPORATION
% ALL RIGHTS RESERVED
if unknown cmbase: input cmbase fi
font_identifier:="LAMS"; font_size 10pt#;
u#:=20/36pt#; % unit width
width_adj#:=0pt#; % width adjustment for certain characters
serif_fit#:=0pt#; % extra sidebar near lowercase serifs
cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
letter_fit#:=0pt#; % extra space added to all sidebars
body_height#:=270/36pt#; % height of tallest characters
asc_height#:=360/36pt#; % height of lowercase ascenders
cap_height#:=246/36pt#; % height of caps
fig_height#:=232/36pt#; % height of numerals
x_height#:=155/36pt#; % height of lowercase without ascenders
math_axis#:=90/36pt#; % axis of symmetry for math symbols
bar_height#:=87/36pt#; % height of crossbar in lowercase e
comma_depth#:=70/36pt#; % depth of comma below baseline
desc_depth#:=0/36pt#; % depth of lowercase descenders
crisp#:=8/36pt#; % diameter of serif corners
tiny#:=8/36pt#; % diameter of rounded corners
fine#:=7/36pt#; % diameter of sharply rounded corners
thin_join#:=7/36pt#; % width of extrafine details
hair#:=9/36pt#; % lowercase hairline breadth
stem#:=24/36pt#; % lowercase stem breadth
curve#:=29/36pt#; % lowercase curve breadth
ess#:=27/36pt#; % breadth in middle of lowercase s
flare#:=32/36pt#; % diameter of bulbs or breadth of terminals
dot_size#:=38/36pt#; % diameter of dots
cap_hair#:=11/36pt#; % uppercase hairline breadth
cap_stem#:=30/36pt#; % uppercase stem breadth
cap_curve#:=35/36pt#; % uppercase curve breadth
cap_ess#:=33/36pt#; % breadth in middle of uppercase s
rule_thickness#:=.4pt#; % thickness of lines in math symbols
dish#:=1/36pt#; % amount erased at top or bottom of serifs
bracket#:=20/36pt#; % vertical distance from serif base to tangent
jut#:=30/36pt#; % protrusion of lowercase serifs
cap_jut#:=37/36pt#; % protrusion of uppercase serifs
beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
beak#:=70/36pt#; % vertical protrusion of beak serifs
vair#:=8/36pt#; % vertical diameter of hairlines
notch_cut#:=10pt#; % maximum breadth above or below notches
bar#:=11/36pt#; % lowercase bar thickness
slab#:=11/36pt#; % serif and arm thickness
cap_bar#:=11/36pt#; % uppercase bar thickness
cap_band#:=11/36pt#; % uppercase thickness above/below lobes
cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
serif_drop#:=4/36pt#; % vertical drop of sloped serifs
stem_corr#:=1/36pt#; % for small refinements of stem breadth
vair_corr#:=1/36pt#; % for small refinements of hairline height
apex_corr#:=0pt#; % extra width at diagonal junctions
o#:=8/36pt#; % amount of overshoot for curves
apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
slant:=0; % tilt ratio $(\Delta x/\Delta y)$
fudge:=1; % factor applied to weights of heavy characters
math_spread:=0; % extra openness of math symbols
superness:=1/sqrt2; % parameter for superellipses
superpull:=1/6; % extra openness inside bowls
beak_darkness:=11/30; % fraction of triangle inside beak serifs
ligs:=2; % level of ligatures to be included
square_dots:=false; % should dots be square?
hefty:=false; % should we try hard not to be overweight?
serifs:=true; % should serifs and bulbs be attached?
monospace:=false; % should all characters have the same width?
variant_g:=true; % should an italic-style g be used?
low_asterisk:=false; % should the asterisk be centered at the axis?
math_fitting:=true; % should math-mode spacing be used?
mode_setup; font_setup;
autorounding:=0;
font_slant slant; font_x_height 0;
font_quad 18u# if not monospace:+4letter_fit# fi;
slant:=mono_charic#:=0; % the remaining characters will not be slanted
currenttransform:=identity yscaled aspect_ratio scaled granularity;
def RevShaft (expr ChCode,ChWidthFrac,ChDepthFrac)=
beginchar(ChCode,ChWidthFrac*18u#,0,ChDepthFrac*18u#);
adjust_fit(0,0); pickup crisp.nib;
x1= 0; x0=(w);
y1=h; y0=-d;
pickup pencircle scaled rule_thickness;
draw z1--z0;
penlabels(1,2); endchar;
enddef;
def RevDashedShaft (expr ChCode, ChWidthFrac, ChDepthFrac)=
beginchar(ChCode,ChWidthFrac*18u#,0,ChDepthFrac*18u#);
adjust_fit(0,0); pickup crisp.nib;
x1= 0; x0=(w);
y1=h; y0=-d;
numeric theta,delta; theta=angle(z0-z1); delta=3u++.24asc_height;
if abs(theta-45)<2.5: theta:=45; y1:=y0+x1-x0; fi % near-45$^\circ$ angle
pos1(rule_thickness,90+theta); pos2(1.5rule_thickness,90+theta);
x2= w;
y2=-d;
pickup pencircle scaled rule_thickness;
draw z1--1/6[z1,z2];
draw 2/6[z1,z2]--4/6[z1,z2];
draw 5/6[z1,z2]--z2;
penlabels(1,2); endchar;
enddef;
def RevUpperHead (expr ChCode, ChWidthFrac, ChDepthFrac)=
beginchar(ChCode,ChWidthFrac*18u#,0,ChDepthFrac*18u#);
adjust_fit(0,0); pickup crisp.nib;
x1=0; x0=w;
y1=h; y0=-d;
numeric theta; theta=angle(z0-z1);
numeric delta; delta=((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
pos1(rule_thickness,90+theta);
pos2(1.5rule_thickness,theta);
pos3(bar,theta); pos4(bar,theta);
z4=z0+ dir -(90+(45-theta)) scaled delta;
z3=z0+ dir -(180+(45-theta)) scaled delta;
z2l=z0;
z9=.381966[.5[z3,z4],z0];
pickup crisp.nib;
filldraw z2r..{z3-z9}z3r---{z9-z3}z3l..z2l--cycle;
filldraw z2r..{z4-z9}z4r---{z9-z4}z4l..z2l--cycle;
endchar;
enddef;
def RevLowerHead (expr ChCode, ChWidthFrac, ChDepthFrac)=
beginchar(ChCode,ChWidthFrac*18u#,0,ChDepthFrac*18u#);
adjust_fit(0,0); pickup crisp.nib;
x1=w ; x0= 0;
y1=-d; y0=h;
numeric theta; theta=angle(z1-z0);
numeric delta; delta=((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
pos1(rule_thickness,-90+theta);
pos2(1.5rule_thickness,theta);
pos3(bar,theta); pos4(bar,theta);
z4=z0+ dir (90-(45-theta)) scaled delta;
z3=z0+ dir -(45-theta) scaled delta;
pos5(bar,90-(45-theta)); z5l=z0; pos6(bar,-(45-theta)); z6l=z0;
z2r=z0;
z9=.381966[.5[z3,z4],z0];
pickup crisp.nib;
filldraw z2r..{z3-z9}z3r---{z9-z3}z3l..z2l--cycle;
filldraw z2r..{z4-z9}z4r---{z9-z4}z4l..z2l--cycle;
penlabels(0,1,2,3,4,5,6,9); endchar;
enddef;
def RevUpperTopBarb (expr ChCode, ChWidthFrac, ChDepthFrac)=
beginchar(ChCode,ChWidthFrac*18u#,0,ChDepthFrac*18u#);
adjust_fit(0,0); pickup crisp.nib;
x1=0; x0=w;
y1=h; y0=-d;
numeric theta; theta=angle(z0-z1);
pos1(rule_thickness,90+theta);
pos0(rule_thickness,90+theta);
pos2(1.5rule_thickness,theta);
pos3(bar,theta); pos4(bar,theta);
z4=z0+ dir -(90+(45-theta)) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
z3=z0+ dir -(180+(45-theta)) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
z2l=z0;
z9=.381966[.5[z3,z4],z0];
pickup crisp.nib;
filldraw z2r..{z3-z9}z3r---{z9-z3}z3l..z2l--cycle;
filldraw z2r{dir (270+theta)}..{z1-z0}z0l--z2l--cycle;
endchar;
enddef;
def RevUpperBotBarb (expr ChCode,ChWidthFrac,ChDepthFrac)=
beginchar(ChCode,ChWidthFrac*18u#,0,ChDepthFrac*18u#);
adjust_fit(0,0); pickup crisp.nib;
x1=0; x0=w;
y1=h; y0=-d;
numeric theta; theta=angle(z0-z1);
pos1(rule_thickness,90+theta);
pos0(rule_thickness,90+theta);
pos2(1.5rule_thickness,theta);
pos3(bar,theta); pos4(bar,theta);
z4=z0+ dir -(90+(45-theta)) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
z3=z0+ dir -(180+(45-theta)) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
z2l=z0;
z9=.381966[.5[z3,z4],z0];
pickup crisp.nib;
filldraw z2r..{z4-z9}z4r---{z9-z4}z4l..z2l--cycle;
filldraw z2r{dir (90+theta)}..{z1-z0}z0r--z2l--cycle;
endchar;
enddef;
def RevLowerTopBarb (expr ChCode, ChWidthFrac, ChDepthFrac)=
beginchar(ChCode,ChWidthFrac*18u#,0,ChDepthFrac*18u#);
adjust_fit(0,0); pickup crisp.nib;
x1=w ; x0=0;
y1=-d; y0=h;
numeric theta; theta=angle(z1-z0);
pos1(rule_thickness,90+theta);
pos0(rule_thickness,90+theta);
pos2(1.5rule_thickness,theta);
pos3(bar,theta); pos4(bar,theta);
z4=z0+ dir (90-(45-theta)) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
z3=z0+ dir -(45-theta) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
pos5(bar,90-(45-theta)); z5l=z0; pos6(bar,-(45-theta)); z6l=z0;
z2r=z0;
z9=.381966[.5[z3,z4],z0];
pickup crisp.nib;
filldraw z2r..{z4-z9}z4r---{z9-z4}z4l..z2l--cycle;
filldraw z2l{dir (180+90+theta)}..{z1-z0}z0l--z2r--cycle;
endchar;
enddef;
def RevLowerBotBarb (expr ChCode, ChWidthFrac,ChDepthFrac)=
beginchar(ChCode,ChWidthFrac*18u#,0,ChDepthFrac*18u#);
adjust_fit(0,0); pickup crisp.nib;
x1=w ; x0=0;
y1=-d; y0=h;
numeric theta,delta;theta=angle(z1-z0);
pos1(rule_thickness,90+theta);
pos0(rule_thickness,90+theta);
pos2(1.5rule_thickness,theta);
pos3(bar,theta); pos4(bar,theta);
z4=z0+ dir (90-(45-theta)) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
z3=z0+ dir -(45-theta) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
pos5(bar,90-(45-theta)); z5l=z0; pos6(bar,-(45-theta)); z6l=z0;
z2r=z0;
z9=.381966[.5[z3,z4],z0];
pickup crisp.nib;
filldraw z2r..{z3-z9}z3r---{z9-z3}z3l..z2l--cycle;
filldraw z2l{dir (90+theta)}..{z1-z0}z0r--z2r--cycle;
endchar;
enddef;
def RevLowerTopHook (expr ChCode, ChWidthFrac, ChDepthFrac)=
compute_spread(.45x_height#,.55x_height);
beginchar(ChCode,ChWidthFrac*18u#,0,ChDepthFrac*18u#);
adjust_fit(0,0); pickup crisp.nib;
x1=(w) ; x0= 0;
y1=-d; y0=h;
numeric theta; theta=angle(z1-z0);
pos1(rule_thickness,-90+theta);
pos2(1.5rule_thickness,theta);
pos3(bar,theta); pos4(bar,theta);
z4=z0+ dir (90+theta) xscaled spread yscaled spread;
pos5(bar,90-(45-theta)); z5l=z0; pos6(bar,-(45-theta)); z6l=z0;
z2l=z0;
z9=.381966[.5[z3,z4],z0];
pickup rule.nib;
z40= 1/2[z0,z4] + dir (180+theta) xscaled 2.5u yscaled 2.5u;
draw z0{z0-z1}..{z4-z0}z40..{z1-z0}z4;
endchar;
enddef;
def RevLowerBotHook (expr ChCode, ChWidthFrac, ChDepthFrac)=
compute_spread(.45x_height#,.55x_height);
beginchar(ChCode,ChWidthFrac*18u#,0,ChDepthFrac*18u#);
adjust_fit(0,0); pickup crisp.nib;
x1=(w) ; x0= 0;
y1=-d; y0=h;
numeric theta,delta; theta=angle(z1-z0); delta=3u++.24asc_height;
if abs(theta-45)<2.5: theta:=45; y1:=y0+x1-x0; fi % near-45$^\circ$ angle
pos1(rule_thickness,-90+theta);
pos2(1.5rule_thickness,theta);
pos3(bar,theta); pos4(bar,theta);
z4=z0+ dir -(90-theta) xscaled spread yscaled spread;
%dir (90-theta) xscaled (delta+eps) yscaled (delta+eps);
%z3=z0+ dir -(45-theta) xscaled (delta+eps) yscaled (delta+eps);
pos5(bar,90-(45-theta)); z5l=z0; pos6(bar,-(45-theta)); z6l=z0;
z2l=z0;
z9=.381966[.5[z3,z4],z0];
z40= 1/2[z0,z4] + dir (180+theta) xscaled 2.5u yscaled 2.5u;
pickup rule.nib;
draw z0{z0-z1}..{z4-z0}z40..{z1-z0}z4;
%penstroke z2e..{z4-z9}z4e;
penlabels(0,1,2,3,4,5,6,9); endchar;
enddef;
def RevUpperTopHook (expr ChCode, ChWidthFrac, ChDepthFrac)=
beginchar(ChCode,ChWidthFrac*18u#,0,ChDepthFrac*18u#);
adjust_fit(0,0); pickup crisp.nib;
x1= 0; x0=(w);
y1=h; y0=-d;
numeric theta; theta=angle(z0-z1);
pos1(rule_thickness,90+theta);
pos2(1.5rule_thickness,theta);
pos3(bar,theta); pos4(bar,theta);
z4=z0+ dir (90+theta) xscaled (spread) yscaled (spread);
z2r=z0;
z9=.381966[.5[z3,z4],z0];
z40= 1/2[z0,z4] + dir theta xscaled 2.5u yscaled 2.5u;
pickup rule.nib;
draw z0{z0-z1}..{z4-z0}z40..{z1-z0}z4;
endchar;
enddef;
def RevUpperBotHook (expr ChCode, ChWidthFrac, ChDepthFrac)=
beginchar(ChCode,ChWidthFrac*18u#,0,ChDepthFrac*18u#);
adjust_fit(0,0); pickup crisp.nib;
x1= 0; x0=(w);
y1=h; y0=-d;
numeric theta; theta=angle(z0-z1);
pos1(rule_thickness,90+theta);
pos2(1.5rule_thickness,theta);
pos3(bar,theta); pos4(bar,theta);
z4=z0+ dir -(90-theta) xscaled (spread) yscaled (spread);
z2r=z0;
z9=.381966[.5[z3,z4],z0];
z40= 1/2[z0,z4] + dir theta xscaled 2.5u yscaled 2.5u;
pickup rule.nib;
draw z0{z0-z1}..{z4-z0}z40..{z1-z0}z4;
penlabels(0,1,2,3,4,5,6,9); endchar;
enddef;
def RevSquiggle (expr ChCode, ChWidthFrac,ChDepthFrac)=
beginchar(ChCode,ChWidthFrac*18u#,0,ChDepthFrac*18u#);
adjust_fit(0,0);
x0= 0; x1=(w);
y0=h; y1=-d;
numeric theta,delta; theta=angle(z1-z0);
delta=3u;
z2=.5/6[z0,z1];
z8=5.5/6[z0,z1];
z3=1/6[z0,z1] + dir (90+theta) xscaled (delta+eps) yscaled (delta+eps);
z5=3/6[z0,z1] + dir (90+theta) xscaled (delta+eps) yscaled (delta+eps);
z7=5/6[z0,z1] + dir (90+theta) xscaled (delta+eps) yscaled (delta+eps);
z4=2/6[z0,z1] + dir -(90-theta) xscaled (delta+eps) yscaled (delta+eps);
z6=4/6[z0,z1] + dir -(90-theta) xscaled (delta+eps) yscaled (delta+eps);
pickup pencircle scaled rule_thickness;
draw z0--z2--z3--z4--z5--z6--z7--z8--z1;
penlabels(1,2); endchar;
enddef;
RevShaft(0,4/5,1);
RevShaft(13,3/4,1);
RevShaft(26,2/3,1);
RevShaft(39,3/5,1);
RevShaft(52,1/2,1);
RevShaft(65,2/5,1);
RevShaft(78,1/3,1);
RevShaft(91,1/4,1);
RevShaft(104,1/5,1);
RevDashedShaft(1,4/5,1);
RevDashedShaft(14,3/4,1);
RevDashedShaft(27,2/3,1);
RevDashedShaft(40,3/5,1);
RevDashedShaft(53,1/2,1);
RevDashedShaft(66,2/5,1);
RevDashedShaft(79,1/3,1);
RevDashedShaft(92,1/4,1);
RevDashedShaft(105,1/5,1);
RevUpperHead(2,4/5,1);
RevUpperHead(15,3/4,1);
RevUpperHead(28,2/3,1);
RevUpperHead(41,3/5,1);
RevUpperHead(54,1/2,1);
RevUpperHead(67,2/5,1);
RevUpperHead(80,1/3,1);
RevUpperHead(93,1/4,1);
RevUpperHead(106,1/5,1);
RevLowerHead(3,4/5,1);
RevLowerHead(16,3/4,1);
RevLowerHead(29,2/3,1);
RevLowerHead(42,3/5,1);
RevLowerHead(55,1/2,1);
RevLowerHead(68,2/5,1);
RevLowerHead(81,1/3,1);
RevLowerHead(94,1/4,1);
RevLowerHead(107,1/5,1);
RevUpperTopBarb(4,4/5,1);
RevUpperTopBarb(17,3/4,1);
RevUpperTopBarb(30,2/3,1);
RevUpperTopBarb(43,3/5,1);
RevUpperTopBarb(56,1/2,1);
RevUpperTopBarb(69,2/5,1);
RevUpperTopBarb(82,1/3,1);
RevUpperTopBarb(95,1/4,1);
RevUpperTopBarb(108,1/5,1);
RevUpperBotBarb(5,4/5,1);
RevUpperBotBarb(18,3/4,1);
RevUpperBotBarb(31,2/3,1);
RevUpperBotBarb(44,3/5,1);
RevUpperBotBarb(57,1/2,1);
RevUpperBotBarb(70,2/5,1);
RevUpperBotBarb(83,1/3,1);
RevUpperBotBarb(96,1/4,1);
RevUpperBotBarb(109,1/5,1);
RevLowerTopBarb(6,4/5,1);
RevLowerTopBarb(19,3/4,1);
RevLowerTopBarb(32,2/3,1);
RevLowerTopBarb(45,3/5,1);
RevLowerTopBarb(58,1/2,1);
RevLowerTopBarb(71,2/5,1);
RevLowerTopBarb(84,1/3,1);
RevLowerTopBarb(97,1/4,1);
RevLowerTopBarb(110,1/5,1);
RevLowerBotBarb(7,4/5,1);
RevLowerBotBarb(20,3/4,1);
RevLowerBotBarb(33,2/3,1);
RevLowerBotBarb(46,3/5,1);
RevLowerBotBarb(59,1/2,1);
RevLowerBotBarb(72,2/5,1);
RevLowerBotBarb(85,1/3,1);
RevLowerBotBarb(98,1/4,1);
RevLowerBotBarb(111,1/5,1);
RevLowerTopHook(8,4/5,1);
RevLowerTopHook(21,3/4,1);
RevLowerTopHook(34,2/3,1);
RevLowerTopHook(47,3/5,1);
RevLowerTopHook(60,1/2,1);
RevLowerTopHook(73,2/5,1);
RevLowerTopHook(86,1/3,1);
RevLowerTopHook(99,1/4,1);
RevLowerTopHook(112,1/5,1);
RevLowerBotHook(9,4/5,1);
RevLowerBotHook(22,3/4,1);
RevLowerBotHook(35,2/3,1);
RevLowerBotHook(48,3/5,1);
RevLowerBotHook(61,1/2,1);
RevLowerBotHook(74,2/5,1);
RevLowerBotHook(87,1/3,1);
RevLowerBotHook(100,1/4,1);
RevLowerBotHook(113,1/5,1);
RevUpperTopHook(10,4/5,1);
RevUpperTopHook(23,3/4,1);
RevUpperTopHook(36,2/3,1);
RevUpperTopHook(49,3/5,1);
RevUpperTopHook(62,1/2,1);
RevUpperTopHook(75,2/5,1);
RevUpperTopHook(88,1/3,1);
RevUpperTopHook(101,1/4,1);
RevUpperTopHook(114,1/5,1);
RevUpperBotHook(11,4/5,1);
RevUpperBotHook(24,3/4,1);
RevUpperBotHook(37,2/3,1);
RevUpperBotHook(50,3/5,1);
RevUpperBotHook(63,1/2,1);
RevUpperBotHook(76,2/5,1);
RevUpperBotHook(89,1/3,1);
RevUpperBotHook(102,1/4,1);
RevUpperBotHook(115,1/5,1);
RevSquiggle(12,4/5,1);
RevSquiggle(25,3/4,1);
RevSquiggle(38,2/3,1);
RevSquiggle(51,3/5,1);
RevSquiggle(64,1/2,1);
RevSquiggle(77,2/5,1);
RevSquiggle(90,1/3,1);
RevSquiggle(103,1/4,1);
RevSquiggle(116,1/5,1);
RevUpperHead(117,1/6,1);
RevLowerHead(118,1/6,1);
RevUpperTopBarb(119,1/6,1);
RevUpperBotBarb(120,1/6,1);
RevLowerTopBarb(121,1/6,1);
RevLowerBotBarb(122,1/6,1);
RevLowerTopHook(123,1/6,1);
RevLowerBotHook(124,1/6,1);
RevUpperTopHook(125,1/6,1);
RevUpperBotHook(126,1/6,1);
RevSquiggle(127,1/6,1);
bye.